import Request,{ extend } from 'umi-request';
import { notification,message } from 'antd';


const codeMessage = {
    400: '请求参数错误',
    401: '权限不足, 请重新登录',
    403: '服务器拒绝本次访问',
    404: '请求资源未找到',
    500: '内部服务器错误',
    501: '服务器不支持该请求中使用的方法',
    502: '网关错误',
    504: '网关超时'
};

/**
 * 异常处理程序
 * 这里可做处理也可不做，只有接口发生错误 且不为200的状态下才可发生作用
 */
const errorHandler = error => {
  const { response } = error;
  if (response && response.status) {
    const errorText = codeMessage[response.status] || response.statusText;
    const { status, url } = response;
    message.error(`请求错误 ${status}`)
    notification.error({
      message: `请求错误 ${status}: ${url}`,
      description: errorText,
    });
  }

  return response;
};
const request = extend({
  errorHandler,
  // 默认错误处理
  credentials: 'include', // 默认请求是否带上cookie
});
//  请求前拦截器
request.interceptors.request.use(async (url:string, options:object) => {
    const headers = {
      'Content-Type': 'application/json',
      'Accept': 'application/json',
      'token':'1111'
    };
    return (
      {
        url: url,
        options: { ...options ,headers},
      }
    );

})

//请求后拦截器   做一些处理---具体看实际的需求
request.interceptors.response.use((response, options) => {
  let token = response.headers.get("x-auth-token");
  if (token) {
    localStorage.setItem("x-auth-token", token);
  }
  return response;
});




export default request